// #include <stdio.h>
// #include <limits.h>
//
// #define MAX_SIZE 100
//
// typedef struct {
//     int SqBiTNode[MAX_SIZE];
//     int ElemNum;
// } SqBiTree;
//
// // 递归检查BST的辅助函数
// int isBSTUtil(SqBiTree T, int index, int min, int max) {
//     // 空节点或越界访问
//     if (index >= T.ElemNum || T.SqBiTNode[index] == -1) {
//         return 1;
//     }
//
//     int current = T.SqBiTNode[index];
//     // 检查当前节点值是否在范围内
//     if (current <= min || current >= max) {
//         return 0;
//     }
//
//     // 递归检查左右子树
//     return isBSTUtil(T, 2*index+1, min, current) &&  // 左子树，更新max
//            isBSTUtil(T, 2*index+2, current, max);    // 右子树，更新min
// }
//
// // 判断是否为BST的主函数
// int isBST(SqBiTree T) {
//     if (T.ElemNum == 0) return 1; // 空树视为BST
//     return isBSTUtil(T, 0, INT_MIN, INT_MAX);
// }
//
// // 测试用例
// int main() {
//     SqBiTree T1 = {{40,25,60,-1,30,-1,80,-1,-1,27}, 10};
//     SqBiTree T2 = {{40,50,60,-1,30,-1,-1,-1,-1,35}, 10};
//
//     printf("T1 is %sBST\n", isBST(T1) ? "" : "not ");
//     printf("T2 is %sBST\n", isBST(T2) ? "" : "not ");
//
//     return 0;
// }